package com.five.bi.model.vo;

import lombok.Data;
import org.apache.commons.lang3.StringUtils;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

@Data
public class QueryFunctionVO implements Serializable {

    Set<String> functionNameSet = new HashSet<>();

    private String functionName;

    private String functionField;

    private String selectField;

    public QueryFunctionVO build(){
        functionNameSet.add("sum");
        functionNameSet.add("avg");
        functionNameSet.add("max");
        functionNameSet.add("min");
        if(!StringUtils.isEmpty(functionField)){
            if (!StringUtils.isEmpty(functionName) && functionNameSet.contains(functionName)){
                this.selectField = functionName + "(" + functionField + ") "+functionField;
            }else {
                this.selectField = functionField;
            }
        }
        return this;
    }
}
